package com.cx.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.annotation.RequestScope;

/**
 * @ClassName: TestController
 * @Description:
 * @Author: cx
 * @Date: 2022/10/19 6:21
 **/

@Controller
public class TestController {

    //必须配置视图解析器才能进行页面的一个跳转 如跳转success.jsp页面
    @RequestMapping("/hello")
    //参数传递问题，正常是直接在参数列表里面写，但是必须前端传进来的参数名跟参数列表中的一样。
    //如果我们想用自己得参数名称定义可以使用注解@RequestParam，里面的name跟前端传过来得参数名称一致
    public String test01(@RequestParam(name = "userName") String name, @RequestParam(name = "age") String sage) {
        System.out.println("传递过来的参数为" + name + ":::" + sage);
        return "success";
    }

    //获取url/parm  中得parm
    //如获取url路径中的http://localhost:8080/test03/55 55得这个值
    @RequestMapping("/test03/{sid}")
    public String test03(@PathVariable(name = "sid") String id) {
        System.out.println("获取路径上的参数为" + id);
        return "success";
    }


    //请求体提交，post请求
    // 我用的psotman等下用那个注解将这个变为json对象然后将对应的参数取出来 ，运用的自动封装
    @RequestMapping("/test04")
    public String test04(@RequestBody String body) {
        System.out.println("请求体得参数为" + body);

        return "success";
    }


    //获取请求头的参数
    //请求头中我们需要获取那些参数可以在浏览器使用f12中查看它的头部有哪些参数，有如Accept及它的Cookie和hostUser-Agent等
    @RequestMapping("/test05")
    public String test05(@RequestHeader(name ="Accept" ) String accept,@RequestHeader(name ="Cookie" ) String Cookie) {
        System.out.println("请求头得参数为Accept: " + accept);
        System.out.println("请求头得参数为Cookie: " + Cookie);
        return "success";
    }


    //返回字符串
    @ResponseBody
    @RequestMapping( value = "/test02")
    public String test02() {
        return "海嗨害";
    }
}
